import { request } from '@/utils/request'


/**
 * 课程实体类
 * @typedef {Object} Course
 * @property {number} [id] - 课程ID，整数类型
 * @property {string} courseName - 课程名称，必填
 * @property {number} courseType - 课程类型ID，必填
 * @property {number} credit - 学分，必填，浮点数类型
 * @property {number} [userId] - 创建人ID，整数类型
 * @property {string} [createTime] - 创建时间，日期时间格式
 * @property {string} [updateTime] - 修改时间，日期时间格式
 */

/**
 * 创建课程
 * @param {Object} data - 课程数据对象
 * @param {number} [data.id] - 课程ID
 * @param {string} data.courseName - 课程名称
 * @param {number} data.courseType - 课程类型ID
 * @param {number} data.credit - 学分
 * @returns {Promise} - 返回创建课程的请求Promise
 */
export function addcourse(data) {
  return request({
    url: '/api/course',
    method: 'post',
    data,
  })
}

/**
 * 获取课程列表
 * /api/course/list
 * @param {Object} params - 查询参数对象
 * @param {number} [params.pageNum] - 当前页码
 * @param {number} [params.pageSize] - 每页条数
 * @param {string} [params.courseName] - 课程名称
 * @param {number} [params.courseType] - 课程类型ID
 */
export function getcourse(params) {
  return request({
    url: '/api/course/list',
    method: 'GET',
    params,
  })
}

/**
 * 获取课程类型列表
 * @param {Object} params - 查询参数对象
 * @param {number} params.id - 课程ID
 * @returns {Promise} - 返回课程类型列表的请求Promise
 */
export function getcourseinfo(params) {
  return request({
    url: '/api/course/info',
    method: 'GET',
    params,
  })
}

/**
 * 修改课程
 * @param {Object} data - 课程数据对象
 * @param {number} data.id - 课程ID
 * @param {string} data.courseName - 课程名称
 * @param {number} data.courseType - 课程类型ID
 * @param {number} data.credit - 学分
 * @returns {Promise} - 返回修改课程的请求Promise
 */
export function updatecourse(data) {
  return request({
    url: '/api/course',
    method: 'PUT',
    data,
  })
}

/**
 * 删除课程
 * @param {Object} params - 查询参数对象
 * @param {number} params.id - 课程ID
 * @returns {Promise} - 返回删除课程的请求Promise
 */
export function deletecourse(data) {
  return request({
    url: '/api/course',
    method: 'DELETE',
    data,
  })
}

